/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package org.i0o.appliancemanager.helper;

import java.awt.Component;
import java.awt.Font;
import javax.swing.JComponent;
import javax.swing.JOptionPane;

/**
 *
 * @author Administrator
 */
public class UIHelper {

    /**
     * 设置组件字体属性
     *
     * @param component 组件
     * @param family 字体
     * @param style 样式
     * @param size 大小
     */
    public static void setFont(JComponent component, String family, int style, int size) {
        Font font = component.getFont();
        if (family == null) {
            family = font.getFamily();
        }
        if (style <= 0) {
            style = font.getStyle();
        }
        if (size <= 0) {
            size = font.getSize();
        }
        component.setFont(new Font(family, style, size));
    }

    /**
     * 设置字体样式和大小
     *
     * @param component 组件
     * @param style 样式 为Font对象的属性
     * @param size 大小
     */
    public static void setFont(JComponent component, int style, int size) {
        setFont(component, null, style, size);
    }

    /**
     * 设置字体样式
     *
     * @param component 组件
     * @param style 样式 为Font对象的属性
     */
    public static void setFontStyle(JComponent component, int style) {
        setFont(component, style, 0);
    }

    /**
     * 设置字体大小
     *
     * @param component 组件
     * @param size 字体大小
     */
    public static void setFontSize(JComponent component, int size) {
        setFont(component, 0, size);
    }

    /**
     * 将字体设置为粗体
     *
     * @param component 组件
     * @param bold 是否为粗体
     */
    public static void setFontBold(JComponent component, boolean bold) {
        if (bold) {
            setFontStyle(component, Font.BOLD);
        } else {
            setFontStyle(component, Font.PLAIN);
        }
    }

    /**
     * 设置组件字体属性
     *
     * @param component 组件
     * @param family 字体
     * @param style 样式
     * @param size 大小
     */
    public static void setFont(Component component, String family, int style, int size) {
        Font font = component.getFont();
        if (family == null) {
            family = font.getFamily();
        }
        if (style <= 0) {
            style = font.getStyle();
        }
        if (size <= 0) {
            size = font.getSize();
        }
        component.setFont(new Font(family, style, size));
    }

    /**
     * 设置字体样式和大小
     *
     * @param component 组件
     * @param style 样式 为Font对象的属性
     * @param size 大小
     */
    public static void setFont(Component component, int style, int size) {
        setFont(component, null, style, size);
    }

    /**
     * 设置字体样式
     *
     * @param component 组件
     * @param style 样式 为Font对象的属性
     */
    public static void setFontStyle(Component component, int style) {
        setFont(component, style, 0);
    }

    /**
     * 设置字体大小
     *
     * @param component 组件
     * @param size 字体大小
     */
    public static void setFontSize(Component component, int size) {
        setFont(component, 0, size);
    }

    /**
     * 将字体设置为粗体
     *
     * @param component 组件
     * @param bold 是否为粗体
     */
    public static void setFontBold(Component component, boolean bold) {
        if (bold) {
            setFontStyle(component, Font.BOLD);
        } else {
            setFontStyle(component, Font.PLAIN);
        }
    }

    /**
     * 弹出消息
     *
     * @param component 父窗体
     * @param msgTitle 消息框标题
     * @param msg 消息内容
     * @param icon 图标
     */
    public static void showAlert(Component component, String msg, String msgTitle, int icon) {
        JOptionPane.showMessageDialog(component, msg, msgTitle, icon);
    }

    /**
     * 弹出消息
     *
     * @param component 父窗体
     * @param msg 消息内容
     * @param icon 图标
     */
    public static void showAlert(Component component, String msg, int icon) {
        showAlert(component, msg, Utilities.getString("softwareTitle"), icon);
    }

    /**
     * 弹出消息
     *
     * @param component 父窗体
     * @param msg 消息内容
     */
    public static void showAlert(Component component, String msg) {
        JOptionPane.showMessageDialog(component, msg);
    }

    /**
     * 弹出错误消息
     *
     * @param component 父窗体
     * @param msg 消息内容
     */
    public static void showErrorAlert(Component component, String msg) {
        showAlert(component, msg, JOptionPane.ERROR_MESSAGE);
    }
}
